// pages/login/login.js
// 云开发的初始化
wx.cloud.init({
  // 云开发环境的id
  env: "word-cwlm1",
  // 是否记录登录用户的信息
  traceUser: true
})
//获取应用实例
const app = getApp()
Page({

  /**
   * 页面的初始数据
   */
  data: {
    // 记录用户的基本信息
    userInfo: '',
    // 记录用户的openid
    openid: '',
    have:0

  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    // 调用云函数获取当前用户的openid
    wx.cloud.callFunction({
      name: 'login',
      data: {},
      success: res => {
        console.log('[云函数] [login] user openid: ', res.result.openid)
        app.globalData.openid = res.result.openid
        this.setData({
          openid: app.globalData.openid
        })
        const db = wx.cloud.database()
        // 查询当前用户是否存在数据库
        db.collection('usermessage').where({
          _openid: res.result.openid
        }).get({
          success: res => {
            this.setData({
              have: res.data.length
            })
            console.log('[数据库] [查询记录] 成功: ', res.data.length)
          },
          fail: err => {
            this.setData({
              have: false
            })
            console.error('[数据库] [查询记录] 失败：', err)
          }
        })
        // 将用户的openid存入到缓存中
        wx.setStorageSync("_openid",this.data.openid);
      },
      fail: err => {
        console.error('[云函数] [login] 调用失败', err)
      }
    })


  },

  getUserInfo: function (e) {
    console.log(e)
    app.globalData.userInfo = e.detail.userInfo
    this.setData({
      userInfo: e.detail.userInfo,
      hasUserInfo: true,
    })
    console.log(this.data.userInfo.avatarUrl)
    wx.setStorageSync('img', this.data.userInfo.avatarUrl)

    // 将用户的信息存入到数据库
    const db = wx.cloud.database()
    console.log("opendid:" + this.data.openid);

    if (this.data.have == 0) {
      db.collection('usermessage').add({
        data: {
          username: e.detail.userInfo.nickName
        },
        success: res => {
          // 在返回结果中会包含新创建的记录的 _id
          this.setData({
            counterId: res._id,
            have: 1,
          })
          wx.showToast({
            title: '新增记录成功',
          })
          console.log('[数据库] [新增记录] 成功，记录 _id: ', res)

        },
        fail: err => {
          wx.showToast({
            icon: 'none',
            title: '新增记录失败'
          })
          console.error('[数据库] [新增记录] 失败：', err)
        }
      })
    }
    // 切换页面到study页面n
    wx.switchTab({
      url: '../study/study',
    })

  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})